package com.atguigu.mybatis.mapper;

import com.atguigu.mybatis.bean.Employee;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * Created by Smexy on 2022/11/9
 *
 */
public interface EmployeeMapper1
{
    @Select(" select * from employee where id = #{fealwihfaewlifh}")
    Employee getEmpById(Integer id);

    //@Param自己为参数在Map中自定义一个Key
    @Select(" select * from employee where id = #{a} and last_name = #{b}")
    Employee getEmpByIdAndName(@Param("a") Integer id, @Param("b") String name);

    /*
            占位符的语法:
                    #{xxx}:  方法中单个参数，xxx可以随便写
                    ${xxx}:  方法中单个参数，xxx不能随便写。可以使用@Param自定义名字
     */
    @Select(" select * from employee where id = ${a}")
    Employee getEmpById2(@Param("a") Integer id);

    /*
               占位符的语法:
                       #{xxx}:  在传入参数时，可以判断参数类型，如果是string，自动添加引号
                       ${xxx}:  在传入参数时，不做操作
        */
    @Select(" select * from employee where last_name = #{a}")
    Employee getEmpById3(@Param("a") String name);

    //在特殊的位置，例如表名，只能使用${}
    @Select(" select * from ${a} where last_name = 'jackma'")
    Employee getEmpById4(@Param("a") String tn);
}
